package com.bonshotels.DataLayer.CtrlDadesHibernate;

import java.util.List;

import com.bonshotels.DomainLayer.CtrlDades.ICtrlBonsHotels;
import com.bonshotels.DomainLayer.DomainModel.BonsHotels;
import com.bonshotels.Excepcions.BonsHotelsNoExisteix;

/**
 * Aquesta classe es la implementacio concreta per a Hibernate de ICtrlBonsHotels, es un producte
 * concret dins del patro factoria abstracta.
 * @autor Marc Mauri Alloza
 */
class CtrlBonsHotelsHibernate extends CtrlGeneralHibernate implements ICtrlBonsHotels {

	/* (non-Javadoc)
	 * @see com.bonshotels.DomainLayer.CtrlDades.ICtrlBonsHotels#obte()
	 */
	@Override
	public BonsHotels obte() throws BonsHotelsNoExisteix {
		List<BonsHotels> bhs = getSession().createCriteria(BonsHotels.class).list();
		if (bhs.isEmpty() ) {
			throw new BonsHotelsNoExisteix();
		}
		return bhs.get(0);
	}

	/* (non-Javadoc)
	 * @see com.bonshotels.DomainLayer.CtrlDades.ICtrlBonsHotels#existeix()
	 */
	@Override
	public boolean existeix() {
		return !getSession().createCriteria(BonsHotels.class).list().isEmpty();
	}

}
